#ifndef nuclearCalculator_H
#define nuclearCalculator_H
/***************************************************************************
    copyright            : Kashyap R Puranik
    email                : kashthealien@gmail.com
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/
 
#include <element.h>
#include <isotope.h>

#include <kdebug.h>
#include<prefs.h>

class nuclearCalculator
{
	public:
		nuclearCalculator  ();
		~nuclearCalculator ();
		
		// Calculates the amount after time 'time'		
		double calculateInitAmount  ( void );
		double calculateFinalAmount ( void );
		double calculateTime ( void );
		
		// Functions to Set the values of the class in SI units
		void setHalfLife ( double halfLife ) { m_halfLife = halfLife; }
		void setInitAmount  ( double amount ) { m_initAmount  = amount; }
		void setFinalAmount ( double amount ) { m_finalAmount = amount; }
		void setTime ( double time ) { m_time = time; }
		void setElement ( Element element ) { m_element = element;}
		void setIsotope ( Isotope isotope ) { m_isotope = isotope;}
		
	private:
	
		Element m_element;
		Isotope m_isotope;
		
		// Note all values are stored in SI units in the class
		double m_halfLife;					// The halfLife
		double m_initAmount;				// initial amount present
		double m_finalAmount;				// amount after time
		double m_time;						// the time involved in calculation
};

#endif // nuclearCalculator_H
